home *** CD-ROM | disk | FTP | other *** search
- ; ReadINIStrWithDefault 1.1 (2009-05-12)
- ;
- ; Substitutes a default value if the INI is undefined
- ; Copyright 2008-2009 John T. Haller of PortableApps.com
- ; Released under the BSD
- ;
- ; Usage: ${ReadINIStrWithDefault} OUTPUT_VALUE INI_FILENAME SECTION_NAME ENTRY_NAME DEFAULT_VALUE
- ;
- ; History:
- ; 1.1 (2009-05-12): Fixed error with $0 and $2 being swapped
-
- Function ReadINIStrWithDefault
- ;Start with a clean slate
- ClearErrors
-
- ;Get our parameters
- Exch $0 ;DEFAULT_VALUE
- Exch
- Exch $1 ;ENTRY_NAME
- Exch 2
- Exch $2 ;SECTION_NAME
- Exch 3
- Exch $3 ;INI_FILENAME
- Push $4 ;OUTPUT_VALUE
-
- ;Read from the INI
- ReadINIStr $4 $3 $2 $1
- IfErrors 0 +3
- StrCpy $4 $0
- ClearErrors
-
- ;Keep the variable for last
- StrCpy $0 $4
-
- ;Clear the stack
- Pop $4
- Pop $3
- Exch 2
- Pop $2
- Pop $1
-
- ;Reset the last variable and leave our result on the stack
- Exch $0
- FunctionEnd
-
- !macro ReadINIStrWithDefault OUTPUT_VALUE INI_FILENAME SECTION_NAME ENTRY_NAME DEFAULT_VALUE
- Push `${INI_FILENAME}`
- Push `${SECTION_NAME}`
- Push `${ENTRY_NAME}`
- Push `${DEFAULT_VALUE}`
- Call ReadINIStrWithDefault
- Pop `${OUTPUT_VALUE}`
- !macroend
-
- !define ReadINIStrWithDefault '!insertmacro "ReadINIStrWithDefault"'